<!-- HTML header for doxygen 1.9.7-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<title>libsir: The Standard Incident Reporter Library</title>
<!-- OpenGraph -->
<meta property="og:title" content="libsir: The Standard Incident Reporter Library">
<meta property="og:description" content="A lightweight, cross-platform C library for information distribution">
<meta property="og:url" content="https://libsir.rml.dev">
<meta property="og:type" content="website">
<meta property="og:image" content="https://libsir.rml.dev/res/libsir-og.png">
<meta name="twitter:card" content="summary_large_image"></meta>
<meta name="twitter:title" content="libsir: The Standard Incident Reporter Library"></meta>
<meta name="twitter:description" content="A lightweight, cross-platform C library for information distribution"></meta>
<meta name="twitter:image" content="https://libsir.rml.dev/res/libsir-og.png"></meta>
<!-- /OpenGraph -->
<!-- favicon -->
<link rel="icon" href="res/libsir-icon.png">
<link rel="icon" href="res/libsir-icon.svg" type="image/svg+xml">
<link rel="manifest" href="res/icons.webmanifest">
<!-- /favicon -->
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
<link href="rml-navtree.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">libsir<span id="projectnumber">&#160;2.2.6</span>
   </div>
   <div id="projectbrief">Standard Incident Reporter</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search',true);
  $(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){initNavTree('group__tests.html',''); initResizable(true); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">Tests</div></div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for Tests:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="group__tests.svg" width="226" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesir.html">sir</a></td></tr>
<tr class="memdesc:namespacesir"><td class="mdescLeft">&#160;</td><td class="mdescRight">libsir C++ wrapper implementation. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacesir_1_1tests.html">sir::tests</a></td></tr>
<tr class="memdesc:namespacesir_1_1tests"><td class="mdescLeft">&#160;</td><td class="mdescRight">libsir C++ wrapper tests. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gacfda68c218d184e7a6998d9f2837481f" id="r_gacfda68c218d184e7a6998d9f2837481f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gacfda68c218d184e7a6998d9f2837481f">sirtest_threadrace</a> (void)</td></tr>
<tr class="memdesc:gacfda68c218d184e7a6998d9f2837481f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle multiple threads competing for locked sections.  <br /></td></tr>
<tr class="separator:gacfda68c218d184e7a6998d9f2837481f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga90b7633a39946d2c201758aafbce43fa" id="r_ga90b7633a39946d2c201758aafbce43fa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga90b7633a39946d2c201758aafbce43fa">sirtest_exceedmaxsize</a> (void)</td></tr>
<tr class="memdesc:ga90b7633a39946d2c201758aafbce43fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle messages that exceed internal buffer sizes.  <br /></td></tr>
<tr class="separator:ga90b7633a39946d2c201758aafbce43fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadad204381413cc93b367969e1c6a6d04" id="r_gadad204381413cc93b367969e1c6a6d04"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gadad204381413cc93b367969e1c6a6d04">sirtest_logwritesanity</a> (void)</td></tr>
<tr class="memdesc:gadad204381413cc93b367969e1c6a6d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure the correct (and complete) message is written to a log file.  <br /></td></tr>
<tr class="separator:gadad204381413cc93b367969e1c6a6d04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9472cbb9a62d343fe0272444a7f87ce1" id="r_ga9472cbb9a62d343fe0272444a7f87ce1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9472cbb9a62d343fe0272444a7f87ce1">sirtest_failnooutputdest</a> (void)</td></tr>
<tr class="memdesc:ga9472cbb9a62d343fe0272444a7f87ce1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle the lack of any output destinations.  <br /></td></tr>
<tr class="separator:ga9472cbb9a62d343fe0272444a7f87ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade87411ddfc55756dd519d7e9b8f33a7" id="r_gade87411ddfc55756dd519d7e9b8f33a7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gade87411ddfc55756dd519d7e9b8f33a7">sirtest_failnulls</a> (void)</td></tr>
<tr class="memdesc:gade87411ddfc55756dd519d7e9b8f33a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle null/empty input.  <br /></td></tr>
<tr class="separator:gade87411ddfc55756dd519d7e9b8f33a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf70a501cd8ae0357d80b99df2b1de901" id="r_gaf70a501cd8ae0357d80b99df2b1de901"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf70a501cd8ae0357d80b99df2b1de901">sirtest_failemptymessage</a> (void)</td></tr>
<tr class="memdesc:gaf70a501cd8ae0357d80b99df2b1de901"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure an empty message is properly handled.  <br /></td></tr>
<tr class="separator:gaf70a501cd8ae0357d80b99df2b1de901"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga47f8191761084c5b3673b0efac0197d0" id="r_ga47f8191761084c5b3673b0efac0197d0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga47f8191761084c5b3673b0efac0197d0">sirtest_filecachesanity</a> (void)</td></tr>
<tr class="memdesc:ga47f8191761084c5b3673b0efac0197d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle adding and removing log files.  <br /></td></tr>
<tr class="separator:ga47f8191761084c5b3673b0efac0197d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d74e7810b41d505863eddced156f448" id="r_ga8d74e7810b41d505863eddced156f448"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8d74e7810b41d505863eddced156f448">sirtest_failinvalidfilename</a> (void)</td></tr>
<tr class="memdesc:ga8d74e7810b41d505863eddced156f448"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle invalid log file name.  <br /></td></tr>
<tr class="separator:ga8d74e7810b41d505863eddced156f448"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f5266c274182a3dae54c48d8d8abba1" id="r_ga8f5266c274182a3dae54c48d8d8abba1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8f5266c274182a3dae54c48d8d8abba1">sirtest_failfilebadpermission</a> (void)</td></tr>
<tr class="memdesc:ga8f5266c274182a3dae54c48d8d8abba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle log file without appropriate permissions.  <br /></td></tr>
<tr class="separator:ga8f5266c274182a3dae54c48d8d8abba1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33eca3443a7a02e5fdaf97f8cb2158a1" id="r_ga33eca3443a7a02e5fdaf97f8cb2158a1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga33eca3443a7a02e5fdaf97f8cb2158a1">sirtest_faildupefile</a> (void)</td></tr>
<tr class="memdesc:ga33eca3443a7a02e5fdaf97f8cb2158a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly refuse to add a duplicate file.  <br /></td></tr>
<tr class="separator:ga33eca3443a7a02e5fdaf97f8cb2158a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga73504bc15f794cbf70dff785136672bb" id="r_ga73504bc15f794cbf70dff785136672bb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga73504bc15f794cbf70dff785136672bb">sirtest_failremovebadfile</a> (void)</td></tr>
<tr class="memdesc:ga73504bc15f794cbf70dff785136672bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly refuse to remove a file that isn't added.  <br /></td></tr>
<tr class="separator:ga73504bc15f794cbf70dff785136672bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b17632b25d61e85f6ff1fa08371959e" id="r_ga1b17632b25d61e85f6ff1fa08371959e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1b17632b25d61e85f6ff1fa08371959e">sirtest_rollandarchivefile</a> (void)</td></tr>
<tr class="memdesc:ga1b17632b25d61e85f6ff1fa08371959e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly roll/archive a file when it hits max size.  <br /></td></tr>
<tr class="separator:ga1b17632b25d61e85f6ff1fa08371959e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f238c5ad2114b9a746e64b003165bd1" id="r_ga4f238c5ad2114b9a746e64b003165bd1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga4f238c5ad2114b9a746e64b003165bd1">sirtest_failwithoutinit</a> (void)</td></tr>
<tr class="memdesc:ga4f238c5ad2114b9a746e64b003165bd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle calls without initialization.  <br /></td></tr>
<tr class="separator:ga4f238c5ad2114b9a746e64b003165bd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b63a7601a010e329f0a1cf57d1433a6" id="r_ga8b63a7601a010e329f0a1cf57d1433a6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8b63a7601a010e329f0a1cf57d1433a6">sirtest_isinitialized</a> (void)</td></tr>
<tr class="separator:ga8b63a7601a010e329f0a1cf57d1433a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf38b29b3f35da81c5315f110745f360d" id="r_gaf38b29b3f35da81c5315f110745f360d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf38b29b3f35da81c5315f110745f360d">sirtest_failinittwice</a> (void)</td></tr>
<tr class="memdesc:gaf38b29b3f35da81c5315f110745f360d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle two initialization calls without corresponding cleanup.  <br /></td></tr>
<tr class="separator:gaf38b29b3f35da81c5315f110745f360d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2b65799988fe973a542371b8131b4e7f" id="r_ga2b65799988fe973a542371b8131b4e7f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2b65799988fe973a542371b8131b4e7f">sirtest_failinvalidinitdata</a> (void)</td></tr>
<tr class="memdesc:ga2b65799988fe973a542371b8131b4e7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle initialization with junk memory.  <br /></td></tr>
<tr class="separator:ga2b65799988fe973a542371b8131b4e7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f7ccc25d41c5980dae048951ba60c8b" id="r_ga9f7ccc25d41c5980dae048951ba60c8b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9f7ccc25d41c5980dae048951ba60c8b">sirtest_initcleanupinit</a> (void)</td></tr>
<tr class="memdesc:ga9f7ccc25d41c5980dae048951ba60c8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle initialization, cleanup, re-initialization.  <br /></td></tr>
<tr class="separator:ga9f7ccc25d41c5980dae048951ba60c8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa55b1ea9a036318bfdc44823ad704a9b" id="r_gaa55b1ea9a036318bfdc44823ad704a9b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa55b1ea9a036318bfdc44823ad704a9b">sirtest_initmakeinit</a> (void)</td></tr>
<tr class="memdesc:gaa55b1ea9a036318bfdc44823ad704a9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly initialize using sir_makeinit.  <br /></td></tr>
<tr class="separator:gaa55b1ea9a036318bfdc44823ad704a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf5a4643e79df2f6b06956ffd6a465ab" id="r_gabf5a4643e79df2f6b06956ffd6a465ab"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gabf5a4643e79df2f6b06956ffd6a465ab">sirtest_failaftercleanup</a> (void)</td></tr>
<tr class="memdesc:gabf5a4643e79df2f6b06956ffd6a465ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly handle calls after cleanup.  <br /></td></tr>
<tr class="separator:gabf5a4643e79df2f6b06956ffd6a465ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1d9150c929ba0b79bf06592563ea81e1" id="r_ga1d9150c929ba0b79bf06592563ea81e1"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1d9150c929ba0b79bf06592563ea81e1">sirtest_errorsanity</a> (void)</td></tr>
<tr class="memdesc:ga1d9150c929ba0b79bf06592563ea81e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly return valid codes and messages for all possible errors.  <br /></td></tr>
<tr class="separator:ga1d9150c929ba0b79bf06592563ea81e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga18ccd68f2c37d9798a06c403380c9308" id="r_ga18ccd68f2c37d9798a06c403380c9308"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga18ccd68f2c37d9798a06c403380c9308">sirtest_textstylesanity</a> (void)</td></tr>
<tr class="memdesc:ga18ccd68f2c37d9798a06c403380c9308"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly style stdio output for each level, and handle style overrides.  <br /></td></tr>
<tr class="separator:ga18ccd68f2c37d9798a06c403380c9308"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac9f9aabf53c8cfadba8b0f76927e6bae" id="r_gac9f9aabf53c8cfadba8b0f76927e6bae"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gac9f9aabf53c8cfadba8b0f76927e6bae">sirtest_optionssanity</a> (void)</td></tr>
<tr class="memdesc:gac9f9aabf53c8cfadba8b0f76927e6bae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly reject invalid option bitmasks.  <br /></td></tr>
<tr class="separator:gac9f9aabf53c8cfadba8b0f76927e6bae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e19675d370d9b538ba320c49ecc7b05" id="r_ga3e19675d370d9b538ba320c49ecc7b05"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3e19675d370d9b538ba320c49ecc7b05">sirtest_levelssanity</a> (void)</td></tr>
<tr class="memdesc:ga3e19675d370d9b538ba320c49ecc7b05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly reject invalid level bitmasks.  <br /></td></tr>
<tr class="separator:ga3e19675d370d9b538ba320c49ecc7b05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8545a7006242a1e925b0f937fa875850" id="r_ga8545a7006242a1e925b0f937fa875850"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8545a7006242a1e925b0f937fa875850">sirtest_mutexsanity</a> (void)</td></tr>
<tr class="memdesc:ga8545a7006242a1e925b0f937fa875850"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure that the mutex implementation is functioning properly.  <br /></td></tr>
<tr class="separator:ga8545a7006242a1e925b0f937fa875850"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga607e96cb52e248a2277ab3ecc31b7195" id="r_ga607e96cb52e248a2277ab3ecc31b7195"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga607e96cb52e248a2277ab3ecc31b7195">sirtest_perf</a> (void)</td></tr>
<tr class="memdesc:ga607e96cb52e248a2277ab3ecc31b7195"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performance evaluation.  <br /></td></tr>
<tr class="separator:ga607e96cb52e248a2277ab3ecc31b7195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3428b620d3540baf058f6b7dd42c075" id="r_gaf3428b620d3540baf058f6b7dd42c075"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf3428b620d3540baf058f6b7dd42c075">sirtest_updatesanity</a> (void)</td></tr>
<tr class="memdesc:gaf3428b620d3540baf058f6b7dd42c075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly update levels/options at runtime.  <br /></td></tr>
<tr class="separator:gaf3428b620d3540baf058f6b7dd42c075"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7edbef2bba9459091aa48d8b9512ede" id="r_gaf7edbef2bba9459091aa48d8b9512ede"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaf7edbef2bba9459091aa48d8b9512ede">sirtest_threadidsanity</a> (void)</td></tr>
<tr class="memdesc:gaf7edbef2bba9459091aa48d8b9512ede"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly format thread ID/names in output.  <br /></td></tr>
<tr class="separator:gaf7edbef2bba9459091aa48d8b9512ede"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8db924f756e0ee2f04ff3e044a10f283" id="r_ga8db924f756e0ee2f04ff3e044a10f283"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga8db924f756e0ee2f04ff3e044a10f283">sirtest_syslog</a> (void)</td></tr>
<tr class="memdesc:ga8db924f756e0ee2f04ff3e044a10f283"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly open, configure, and send messages to syslog().  <br /></td></tr>
<tr class="separator:ga8db924f756e0ee2f04ff3e044a10f283"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54f0e8e0163d0aedf20616451f122017" id="r_ga54f0e8e0163d0aedf20616451f122017"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga54f0e8e0163d0aedf20616451f122017">sirtest_os_log</a> (void)</td></tr>
<tr class="memdesc:ga54f0e8e0163d0aedf20616451f122017"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly open, configure, and send messages to os_log().  <br /></td></tr>
<tr class="separator:ga54f0e8e0163d0aedf20616451f122017"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2e0a749564af876b85a717616e1182c6" id="r_ga2e0a749564af876b85a717616e1182c6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga2e0a749564af876b85a717616e1182c6">sirtest_win_eventlog</a> (void)</td></tr>
<tr class="memdesc:ga2e0a749564af876b85a717616e1182c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Properly open, configure, and send messages to the Windows event log.  <br /></td></tr>
<tr class="separator:ga2e0a749564af876b85a717616e1182c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa0b035b71e6a6e6df6b8a7bb95722e2a" id="r_gaa0b035b71e6a6e6df6b8a7bb95722e2a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#gaa0b035b71e6a6e6df6b8a7bb95722e2a">sirtest_filesystem</a> (void)</td></tr>
<tr class="memdesc:gaa0b035b71e6a6e6df6b8a7bb95722e2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure the proper functionality of portable filesystem implementation.  <br /></td></tr>
<tr class="separator:gaa0b035b71e6a6e6df6b8a7bb95722e2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3ad5e95b1114eba573969077ebb40cb5" id="r_ga3ad5e95b1114eba573969077ebb40cb5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3ad5e95b1114eba573969077ebb40cb5">sirtest_squelchspam</a> (void)</td></tr>
<tr class="memdesc:ga3ad5e95b1114eba573969077ebb40cb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure that spam messages are squelched, normal messages are not, and proper return values result from calls into libsir.  <br /></td></tr>
<tr class="separator:ga3ad5e95b1114eba573969077ebb40cb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b5a43deceffa8c36174e7b04576f6a3" id="r_ga1b5a43deceffa8c36174e7b04576f6a3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga1b5a43deceffa8c36174e7b04576f6a3">sirtest_pluginloader</a> (void)</td></tr>
<tr class="memdesc:ga1b5a43deceffa8c36174e7b04576f6a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure that well-formed, valid plugins are successfully loaded, and that ill-formed/incorrectly behaving plugins are rejected.  <br /></td></tr>
<tr class="separator:ga1b5a43deceffa8c36174e7b04576f6a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a99bdb359288b2ace8f0e7c27f473c7" id="r_ga7a99bdb359288b2ace8f0e7c27f473c7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga7a99bdb359288b2ace8f0e7c27f473c7">sirtest_stringutils</a> (void)</td></tr>
<tr class="memdesc:ga7a99bdb359288b2ace8f0e7c27f473c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure the string utility routines are functioning properly.  <br /></td></tr>
<tr class="separator:ga7a99bdb359288b2ace8f0e7c27f473c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5899d280207b0f5ab7c3e10b829ee79a" id="r_ga5899d280207b0f5ab7c3e10b829ee79a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga5899d280207b0f5ab7c3e10b829ee79a">sirtest_getcpucount</a> (void)</td></tr>
<tr class="memdesc:ga5899d280207b0f5ab7c3e10b829ee79a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure the processor counting routines are functioning properly.  <br /></td></tr>
<tr class="separator:ga5899d280207b0f5ab7c3e10b829ee79a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b90eec512f445effa4990dbc130ac82" id="r_ga3b90eec512f445effa4990dbc130ac82"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga3b90eec512f445effa4990dbc130ac82">sirtest_getversioninfo</a> (void)</td></tr>
<tr class="memdesc:ga3b90eec512f445effa4990dbc130ac82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure that version retrieval exports are functioning properly.  <br /></td></tr>
<tr class="separator:ga3b90eec512f445effa4990dbc130ac82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9ec172056871a719049c1c40ffdaf292" id="r_ga9ec172056871a719049c1c40ffdaf292"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ga9ec172056871a719049c1c40ffdaf292">sirtest_threadpool</a> (void)</td></tr>
<tr class="memdesc:ga9ec172056871a719049c1c40ffdaf292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensure the proper functioning of the thread pool and job queue mech- anisms.  <br /></td></tr>
<tr class="separator:ga9ec172056871a719049c1c40ffdaf292"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>libsir integrity tests</p>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga1d9150c929ba0b79bf06592563ea81e1" name="ga1d9150c929ba0b79bf06592563ea81e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1d9150c929ba0b79bf06592563ea81e1">&#9670;&#160;</a></span>sirtest_errorsanity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_errorsanity </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly return valid codes and messages for all possible errors. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga90b7633a39946d2c201758aafbce43fa" name="ga90b7633a39946d2c201758aafbce43fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga90b7633a39946d2c201758aafbce43fa">&#9670;&#160;</a></span>sirtest_exceedmaxsize()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_exceedmaxsize </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle messages that exceed internal buffer sizes. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gabf5a4643e79df2f6b06956ffd6a465ab" name="gabf5a4643e79df2f6b06956ffd6a465ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabf5a4643e79df2f6b06956ffd6a465ab">&#9670;&#160;</a></span>sirtest_failaftercleanup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failaftercleanup </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle calls after cleanup. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga33eca3443a7a02e5fdaf97f8cb2158a1" name="ga33eca3443a7a02e5fdaf97f8cb2158a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga33eca3443a7a02e5fdaf97f8cb2158a1">&#9670;&#160;</a></span>sirtest_faildupefile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_faildupefile </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly refuse to add a duplicate file. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gaf70a501cd8ae0357d80b99df2b1de901" name="gaf70a501cd8ae0357d80b99df2b1de901"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf70a501cd8ae0357d80b99df2b1de901">&#9670;&#160;</a></span>sirtest_failemptymessage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failemptymessage </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure an empty message is properly handled. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga8f5266c274182a3dae54c48d8d8abba1" name="ga8f5266c274182a3dae54c48d8d8abba1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8f5266c274182a3dae54c48d8d8abba1">&#9670;&#160;</a></span>sirtest_failfilebadpermission()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failfilebadpermission </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle log file without appropriate permissions. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gaf38b29b3f35da81c5315f110745f360d" name="gaf38b29b3f35da81c5315f110745f360d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf38b29b3f35da81c5315f110745f360d">&#9670;&#160;</a></span>sirtest_failinittwice()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failinittwice </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle two initialization calls without corresponding cleanup. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga8d74e7810b41d505863eddced156f448" name="ga8d74e7810b41d505863eddced156f448"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d74e7810b41d505863eddced156f448">&#9670;&#160;</a></span>sirtest_failinvalidfilename()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failinvalidfilename </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle invalid log file name. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga2b65799988fe973a542371b8131b4e7f" name="ga2b65799988fe973a542371b8131b4e7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2b65799988fe973a542371b8131b4e7f">&#9670;&#160;</a></span>sirtest_failinvalidinitdata()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failinvalidinitdata </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle initialization with junk memory. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga9472cbb9a62d343fe0272444a7f87ce1" name="ga9472cbb9a62d343fe0272444a7f87ce1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9472cbb9a62d343fe0272444a7f87ce1">&#9670;&#160;</a></span>sirtest_failnooutputdest()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failnooutputdest </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle the lack of any output destinations. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gade87411ddfc55756dd519d7e9b8f33a7" name="gade87411ddfc55756dd519d7e9b8f33a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade87411ddfc55756dd519d7e9b8f33a7">&#9670;&#160;</a></span>sirtest_failnulls()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failnulls </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle null/empty input. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga73504bc15f794cbf70dff785136672bb" name="ga73504bc15f794cbf70dff785136672bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga73504bc15f794cbf70dff785136672bb">&#9670;&#160;</a></span>sirtest_failremovebadfile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failremovebadfile </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly refuse to remove a file that isn't added. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga4f238c5ad2114b9a746e64b003165bd1" name="ga4f238c5ad2114b9a746e64b003165bd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4f238c5ad2114b9a746e64b003165bd1">&#9670;&#160;</a></span>sirtest_failwithoutinit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_failwithoutinit </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle calls without initialization. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga47f8191761084c5b3673b0efac0197d0" name="ga47f8191761084c5b3673b0efac0197d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga47f8191761084c5b3673b0efac0197d0">&#9670;&#160;</a></span>sirtest_filecachesanity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_filecachesanity </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle adding and removing log files. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gaa0b035b71e6a6e6df6b8a7bb95722e2a" name="gaa0b035b71e6a6e6df6b8a7bb95722e2a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa0b035b71e6a6e6df6b8a7bb95722e2a">&#9670;&#160;</a></span>sirtest_filesystem()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_filesystem </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure the proper functionality of portable filesystem implementation. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga5899d280207b0f5ab7c3e10b829ee79a" name="ga5899d280207b0f5ab7c3e10b829ee79a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5899d280207b0f5ab7c3e10b829ee79a">&#9670;&#160;</a></span>sirtest_getcpucount()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_getcpucount </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure the processor counting routines are functioning properly. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga3b90eec512f445effa4990dbc130ac82" name="ga3b90eec512f445effa4990dbc130ac82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3b90eec512f445effa4990dbc130ac82">&#9670;&#160;</a></span>sirtest_getversioninfo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_getversioninfo </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure that version retrieval exports are functioning properly. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga9f7ccc25d41c5980dae048951ba60c8b" name="ga9f7ccc25d41c5980dae048951ba60c8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9f7ccc25d41c5980dae048951ba60c8b">&#9670;&#160;</a></span>sirtest_initcleanupinit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_initcleanupinit </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle initialization, cleanup, re-initialization. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gaa55b1ea9a036318bfdc44823ad704a9b" name="gaa55b1ea9a036318bfdc44823ad704a9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa55b1ea9a036318bfdc44823ad704a9b">&#9670;&#160;</a></span>sirtest_initmakeinit()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_initmakeinit </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly initialize using sir_makeinit. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga8b63a7601a010e329f0a1cf57d1433a6" name="ga8b63a7601a010e329f0a1cf57d1433a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8b63a7601a010e329f0a1cf57d1433a6">&#9670;&#160;</a></span>sirtest_isinitialized()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_isinitialized </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test passed, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga3e19675d370d9b538ba320c49ecc7b05" name="ga3e19675d370d9b538ba320c49ecc7b05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3e19675d370d9b538ba320c49ecc7b05">&#9670;&#160;</a></span>sirtest_levelssanity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_levelssanity </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly reject invalid level bitmasks. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gadad204381413cc93b367969e1c6a6d04" name="gadad204381413cc93b367969e1c6a6d04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadad204381413cc93b367969e1c6a6d04">&#9670;&#160;</a></span>sirtest_logwritesanity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_logwritesanity </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure the correct (and complete) message is written to a log file. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga8545a7006242a1e925b0f937fa875850" name="ga8545a7006242a1e925b0f937fa875850"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8545a7006242a1e925b0f937fa875850">&#9670;&#160;</a></span>sirtest_mutexsanity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_mutexsanity </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure that the mutex implementation is functioning properly. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gac9f9aabf53c8cfadba8b0f76927e6bae" name="gac9f9aabf53c8cfadba8b0f76927e6bae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac9f9aabf53c8cfadba8b0f76927e6bae">&#9670;&#160;</a></span>sirtest_optionssanity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_optionssanity </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly reject invalid option bitmasks. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga54f0e8e0163d0aedf20616451f122017" name="ga54f0e8e0163d0aedf20616451f122017"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga54f0e8e0163d0aedf20616451f122017">&#9670;&#160;</a></span>sirtest_os_log()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_os_log </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly open, configure, and send messages to os_log(). </p>
<dl class="section note"><dt>Note</dt><dd>Only enabled when compiled on macOS with Clang. </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga607e96cb52e248a2277ab3ecc31b7195" name="ga607e96cb52e248a2277ab3ecc31b7195"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga607e96cb52e248a2277ab3ecc31b7195">&#9670;&#160;</a></span>sirtest_perf()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_perf </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performance evaluation. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga1b5a43deceffa8c36174e7b04576f6a3" name="ga1b5a43deceffa8c36174e7b04576f6a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1b5a43deceffa8c36174e7b04576f6a3">&#9670;&#160;</a></span>sirtest_pluginloader()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_pluginloader </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure that well-formed, valid plugins are successfully loaded, and that ill-formed/incorrectly behaving plugins are rejected. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga1b17632b25d61e85f6ff1fa08371959e" name="ga1b17632b25d61e85f6ff1fa08371959e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1b17632b25d61e85f6ff1fa08371959e">&#9670;&#160;</a></span>sirtest_rollandarchivefile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_rollandarchivefile </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly roll/archive a file when it hits max size. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga3ad5e95b1114eba573969077ebb40cb5" name="ga3ad5e95b1114eba573969077ebb40cb5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3ad5e95b1114eba573969077ebb40cb5">&#9670;&#160;</a></span>sirtest_squelchspam()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_squelchspam </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure that spam messages are squelched, normal messages are not, and proper return values result from calls into libsir. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga7a99bdb359288b2ace8f0e7c27f473c7" name="ga7a99bdb359288b2ace8f0e7c27f473c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7a99bdb359288b2ace8f0e7c27f473c7">&#9670;&#160;</a></span>sirtest_stringutils()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_stringutils </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure the string utility routines are functioning properly. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga8db924f756e0ee2f04ff3e044a10f283" name="ga8db924f756e0ee2f04ff3e044a10f283"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8db924f756e0ee2f04ff3e044a10f283">&#9670;&#160;</a></span>sirtest_syslog()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_syslog </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly open, configure, and send messages to syslog(). </p>
<dl class="section note"><dt>Note</dt><dd>Disabled on Windows (and macOS if not compiled with Clang.). </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga18ccd68f2c37d9798a06c403380c9308" name="ga18ccd68f2c37d9798a06c403380c9308"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga18ccd68f2c37d9798a06c403380c9308">&#9670;&#160;</a></span>sirtest_textstylesanity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_textstylesanity </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly style stdio output for each level, and handle style overrides. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gaf7edbef2bba9459091aa48d8b9512ede" name="gaf7edbef2bba9459091aa48d8b9512ede"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf7edbef2bba9459091aa48d8b9512ede">&#9670;&#160;</a></span>sirtest_threadidsanity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_threadidsanity </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly format thread ID/names in output. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga9ec172056871a719049c1c40ffdaf292" name="ga9ec172056871a719049c1c40ffdaf292"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9ec172056871a719049c1c40ffdaf292">&#9670;&#160;</a></span>sirtest_threadpool()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_threadpool </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Ensure the proper functioning of the thread pool and job queue mech- anisms. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gacfda68c218d184e7a6998d9f2837481f" name="gacfda68c218d184e7a6998d9f2837481f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacfda68c218d184e7a6998d9f2837481f">&#9670;&#160;</a></span>sirtest_threadrace()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_threadrace </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly handle multiple threads competing for locked sections. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="gaf3428b620d3540baf058f6b7dd42c075" name="gaf3428b620d3540baf058f6b7dd42c075"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf3428b620d3540baf058f6b7dd42c075">&#9670;&#160;</a></span>sirtest_updatesanity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_updatesanity </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly update levels/options at runtime. </p>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
<a id="ga2e0a749564af876b85a717616e1182c6" name="ga2e0a749564af876b85a717616e1182c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2e0a749564af876b85a717616e1182c6">&#9670;&#160;</a></span>sirtest_win_eventlog()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sirtest_win_eventlog </td>
          <td>(</td>
          <td class="paramtype">void</td>          <td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Properly open, configure, and send messages to the Windows event log. </p>
<dl class="section note"><dt>Note</dt><dd>Only enabled on Windows. </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>bool <code>true</code> if the test succeeded, <code>false</code> otherwise. </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.9.7-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
  </ul>
</div>
</body>
</html>
